iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
影片教學

睡醒來聽 PHP 與 MySQL系列 第 4

[睡醒來聽 PHP 與 MySQL] DAY4 php語法基礎(2)陣列介紹

  • 分享至 

  • xImage
  •  

Yes

Welcome 歡迎來到「睡醒來聽 PHP 與 MySQL」系列!

DAY04 今天要學甚麼? 今天進入陣列的世界

🔶章節:
🔹[開頭] 0:00
🔹[陣列基礎與元素] 0:31
🔹[PHP陣列的類型-索引陣列(Indexed Arrays)] 2:38
🔹[PHP陣列的類型-關聯陣列(Associative Arrays)] 3:27
🔹[PHP陣列的類型-多維陣列(Multidimensional Arrays)] 4:00
🔹[PHP陣列的類型-散列陣列(Hashed Arrays)] 4:39
🔹[選擇類型] 5:05
🔹[更改索引陣列] 5:31
🔹[更改關聯陣列] 6:56
🔹[更改多維陣列] 7:50
🔹[總結] 8:50
如果影片中不清楚,需要補充的地方我會再添加到這邊~ /images/emoticon/emoticon08.gif


陣列基礎與元素

https://ithelp.ithome.com.tw/upload/images/20230918/20152215qSTBSyweWG.png
陣列是一種數據結構,可以讓我們以有組織的方式儲存和處理多個相關的值。
在陣列中,每個值都有一個稱為 鍵(key) 的標識,用來標識該值的位置或身份,以及一個對應的 值(value),代表實際儲存的數據。

陣列元素、鍵和值

陣列可以看作是一個數據容器,類似於一個列表或表格,其中每個元素都有一個唯一的鍵,以及對應的值。鍵通常是用來識別元素的名稱或索引,而值則是實際儲存的數據。

創建陣列

https://ithelp.ithome.com.tw/upload/images/20230918/20152215FK14qmjzZ6.png

<?php
$person = array(
    "name" => "Alice",
    "age" => 30,
    "occupation" => "Web Developer"
);
?>

創建了一個名為 $person 的陣列,其中包含三個元素:

  • "name": 鍵值為 "name",對應的值為 "Alice",表示名字是 Alice。
  • "age": 鍵值為 "age",對應的值為 30,表示年齡是 30 歲。
  • "occupation": 鍵值為 "occupation",對應的值為 "Web Developer",表示職業是 Web 開發人員。

存取陣列元素

<?php
echo "姓名:" . $person["name"] . "<br>";
echo "年齡:" . $person["age"] . " 歲<br>";
echo "職業:" . $person["occupation"];
?>
  1. echo "姓名:" . $person["name"] . "< br >";:
    echo 用於輸出文字,將字串 "姓名:" 和 $person["name"] 的值(即 Alice)連接起來並輸出。
  2. echo "年齡:" . $person["age"] . " 歲< br >";:
    同樣使用 echo 輸出文字,將字串 "年齡:"、$person["age"] 的值(即 30)和 " 歲" 連接起來並輸出。
  3. echo "職業:" . $person["occupation"];:
    再次使用 echo 輸出文字,將字串 "職業:" 和 $person["occupation"] 的值(即 Web Developer)連接起來並輸出。
  4. < br > 用於換行。

PHP陣列的類型

索引陣列 - Indexed Arrays

這種陣列是最基本的類型,其中的每個元素都以數字索引編號,從 0 開始。索引陣列適用於儲存各種數值列表,像是商品價格、一周中的日期等。

https://ithelp.ithome.com.tw/upload/images/20230918/20152215PqMH3ihUdJ.png

$daysOfWeek = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

在這個陣列中,每個元素都有一個數字索引,從 0 到 6。例如:

$daysOfWeek[0] 對應到 "Sunday"(星期日)
$daysOfWeek[1] 對應到 "Monday"(星期一)
$daysOfWeek[2] 對應到 "Tuesday"(星期二)
以此類推,直到 $daysOfWeek[6] 對應到 "Saturday"(星期六)
這樣可以透過索引來存取特定位置的元素,這種索引是基於位置的,從 0 開始。當你需要處理特定順序的資料集合時會使用到,例如這裡的一週天數。

關聯陣列 - Associative Arrays

使用自定義的鍵(key)和相對應的值(value)配對,每個元素都擁有一個獨特的鍵。關聯陣列適用於儲存各種名稱-值對。

https://ithelp.ithome.com.tw/upload/images/20230918/20152215FkHnuv2Axf.png

$userInfo = array("name" => "Alice", "age" => 30, "occupation" => "Web Developer");

在這個關聯陣列中,有三個元素,每個元素都有一個鍵和對應的值:

"name": 鍵為 "name",對應的值為 "Alice",表示名字是 Alice。
"age": 鍵為 "age",對應的值為 30,表示年齡是 30 歲。
"occupation": 鍵為 "occupation",對應的值為 "Web Developer",表示職業是 Web 開發人員。
不同於數值索引陣列,這裡使用了自訂的鍵(例如 "name"、"age"、"occupation")來標識每個值。這使得能夠使用更具描述性的標籤來訪問和理解陣列中的資料。

多維陣列 - Multidimensional Arrays

包含其他陣列作為元素的陣列。

https://ithelp.ithome.com.tw/upload/images/20230918/20152215r38GxugWlr.png

$studentScores = array(
    array("John", 85, 92, 78),
    array("Alice", 90, 88, 95),
    array("Bob", 76, 85, 80)
);

這個多維陣列中,每個元素都是一個子陣列,每個子陣列代表一位學生的資訊。每個子陣列包含學生的姓名和對應的成績:

第一位學生的資訊:

  • "John" 是學生的姓名。
  • 85 是第一科的成績。
  • 92 是第二科的成績。
  • 78 是第三科的成績。

第二位學生的資訊:

  • "Alice" 是學生的姓名。
  • 90 是第一科的成績。
  • 88 是第二科的成績。
  • 95 是第三科的成績。

第三位學生的資訊:

  • "Bob" 是學生的姓名。
  • 76 是第一科的成績。
  • 85 是第二科的成績。
  • 80 是第三科的成績。

這樣的多維陣列結構可以方便地存儲和組織多個學生的資訊,每個學生的資訊由子陣列表示,並以這種方式可以輕鬆地存取和操作學生的姓名和成績資訊。

散列陣列 - Hashed Arrays

陣列通過散列函數計算鍵的值,用於快速查找和查詢數據。

$dictionary = array(
    "apple" => "蘋果",
    "banana" => "香蕉",
    "grape" => "葡萄"
);

創建了一個英文到中文的散列陣列,以實現單詞翻譯的功能。
https://ithelp.ithome.com.tw/upload/images/20230918/20152215bdZ1fKz1kX.png
在這個散列陣列中,每個元素都是一個鍵值對,其中英文單字作為鍵(key),對應的中文翻譯作為值(value):

"apple" 是鍵,對應的值是 "蘋果",表示英文單字 "apple" 對應到中文翻譯 "蘋果"。
"banana" 是鍵,對應的值是 "香蕉",表示英文單字 "banana" 對應到中文翻譯 "香蕉"。
"grape" 是鍵,對應的值是 "葡萄",表示英文單字 "grape" 對應到中文翻譯 "葡萄"。
這樣的散列陣列結構使得可以快速查找英文單字的中文翻譯,只需使用英文單字作為鍵來取得對應的中文翻譯。


更改

索引陣列中的值

$studentScores = array(85, 92, 78, 88, 95);

// 將第二位學生的成績更新為90
$studentScores[1] = 90;

// 輸出更新後的陣列
print_r($studentScores);

關聯陣列中的值

$userInfo = array("name" => "Alice", "age" => 30, "occupation" => "Web Developer");

// 將用戶職業從 "Web Developer" 修改為 "Software Engineer"
$userInfo["occupation"] = "Software Engineer";

// 輸出更新後的陣列
print_r($userInfo);

多維陣列的值

$studentScores = array(
    array("John", 85, 92, 78),
    array("Alice", 90, 88, 95),
    array("Bob", 76, 85, 80)
);

// 將 Alice 的數學成績從 88 修改為 92
$studentScores[1][2] = 92;

// 輸出更新後的多維陣列
print_r($studentScores);


上一篇
[睡醒來聽 PHP 與 MySQL] DAY3 php語法基礎(1)起步安裝、echo、變數介紹
下一篇
[睡醒來聽 PHP 與 MySQL] DAY5 php語法基礎(3)字串串接、資料型態、運算子
系列文
睡醒來聽 PHP 與 MySQL30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言